﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using KPIS.GERP.GHRMS.MODEL;

namespace KPIS.GERP.GHRMS.IDAL
{
    public interface IEmployeeDAL
    {
        IList<EmployeeInfo> ListEmployees(EmployeeInfo empInfo);
        IList<hrm_ps_employees> GetEmployees(hrm_ps_employees empInfo);
        DataSet LoadEmployees(Nullable<int> Sequence, string EmpTypeSequence, Nullable<int> JobSiteSequence
            , Nullable<int> WorkingJobSiteSequence, bool bActive, int StartRetire, int EndRetire, string SearchText);
        DataSet LoadEmployees(Nullable<int> Sequence, string EmpTypeSequence, Nullable<int> JobSiteSequence
            , Nullable<int> WorkingJobSiteSequence, bool bActive, int StartRetire, int EndRetire, string SearchText
            , string EmpStatusSequence);
        DataSet LoadToExcel(string EmployeeType, string JobSite, string WorkingJobSite
            , string PositionType, string Class, string FieldPositon, string EduDegree
            , string EduQualification, string EduMajor, string EduInstitutes
            , Nullable<double> WorkingDayCount, Nullable<DateTime> WorkingDayCountDate
            , Nullable<double> AgeCount, Nullable<DateTime> AgeCountDate
            , Nullable<int> KeepClass, Nullable<int> KeepClassCount
            , bool bActive);
        DataSet LoadEmployeeForWorkingOversea(Nullable<int> Sequence, string EmpTypeSequence
            , Nullable<int> WorkingJobSiteSequence, int DurationOversea, Nullable<DateTime> StartDateNew
            , string SearchText);
        DataSet LoadEmployeeForApproveCommands();
        DataSet Detail();
        string Insert(EmployeeInfo Info);
        void Update(EmployeeInfo Info);
        void UpdateSingleField(int Sequence, string fieldName, object fieldValue, int updateBy);
        void UpdatePersonal(EmployeeInfo Info);
        void Delete(int Sequence, int UpdatedBy);
        void UploadFile(ImageInfo image_info, string image_id);
        void UploadFileToServer(ImageInfo image_info, string image_id);
        string GetGenderSeq(string NamePrefixSeq);
    }
}
